Infinity-Game-Action names a function, with lambda list (D USER RECIPIENT/S):
Send an in-world game's action.
Lisp GAME-ACTION = JSON gameAction
These are actions that affect in-world minigames.
{ c: "gameAction", d: { game: "AEB967CB-5598-40D5-9B4A-894C9BC38501", action: ACTION-NAME, [ ... PARAMS ... ] } }
{ c: "gameAction", d: { game: "AEB967CB-5598-40D5-9B4A-894C9BC38501", action: "tagYouReIt", tagged: "5047F44E-8B1D-4B8A-9EC6-4E1D6E1653AD" } }
In-world minigames generally don't use much of a special interface, but sometimes require some kind of additional overlay. The game actions are usually signaled by in-game items.
In-world minigames include soccer, volleyball, croquet, bowling, card table games, tag, and more. Each of these games may have a score and possibly some enforceable rules, although we often leave enforcement of the rules to the players (so that they can choose which rule set they like).
These game actions are identified by function names beginning with “GAME-ACTION-.” Some of them include:
A gameAction packet has a d datum with a key action, which is used to further dispatch the game action to its appropriate handler. The action value is the smallCamelCase version of the “GAME-ACTION-function-name” that will actually handle it.
The specific game which is being addressed must be identified by its UUID. This is usually discovered by finding a game tag on an item or place in the game world.
WRITEME: Explain how to find a game tag.
Refer to the individual game action functions for further details.
See Appendix 8 for an index of game actions.
The individual game action handlers will provide their own response formats. In general, they will come from gameAction, with a status of true or false; when false, they should include an error text which may be user-visible, and may include an err tag which is a general machine-readable code.
If the action is not supplied, or if no such action is known to the server, then an error 400 is returned, with a JSON error packet of the usual form:
{ from: "gameAction", status: false, error: "error message text", err: "game-action-not-found" }
Defined in file src/infinity/legacy-commands.lisp.